エッジデバイス「Neural Cube(ニューラルキューブ)」開発秘話
最初にNeural Cubeを開発しようとした背景はAI導入時のセットアップ工数の削減です。
しかし、もともと製造業を生業としている武蔵グループが開発するのであれば、製造現場目線で使い勝手の良いデバイスにしようと考えました。
「製造現場目線とは何か」ということから検討が始まり大きく分けて以下のようなコンセプトで開発を始めました。
- AIの現場実装時間を短縮する(ソフトウェア事前構築済み、カメラ用APIの実装、プログラミング言語を python で統一)
- 現場へのデバイス実装、メンテナンスを容易にする
AIの現場実装時間を短縮する
武蔵精密工業での取り組みからAIの現場実装時間のボトルネックは以下の3点であると考えました。
- AI開発に必要なソフトウェアの構築(Jetpack、各種フレームワーク等)
- カメラ用のAPIインストール
- カメラ用API(C, C++)とPythonとのプログラミング言語の不整合
エッジデバイスNeural Cube(ニューラルキューブ)は上記ボトルネックを解消するためにAI開発に必要なソフトウェアは事前インストール済みですが、どのバージョンのソフトウェアを事前インストールする対象にするのか非常に苦労しました。
JetpackはNeural Cubeに搭載されているJetsonTX2を駆動させるためにNVIDIA社が提供しているベースソフトウェアになり、順次バージョンアップされます。ただし、JetsonTX2の開発キット向けに準備されており、開発キットと構成の異なるハードウェアに導入する場合には、修正が必要になります。そのため、Neural Cubeに事前インストールするJetpackのバージョンをあらかじめ固定して考える必要がありました。ソフトウェアはバージョンによって機能追加され、より便利になっていくため、パートナ企業とのNeural Cubeへの要件検討と開発スケジュール、Jetpackのメジャーアップデートのタイミングをぎりぎりまで合わせ開発を行いました。そのため、Neural CubeにはスムーズなAI開発に必要なソフトウェアを事前インストールすることができました。
現場へのデバイス実装、メンテナンスを容易にする
製造現場への導入をするためにはソフトウェアの性能だけでなく、ハードウェアについても工夫する必要がありました。そのため、現場で使用されている従来のデバイス(ロボット制御用のPLCや電源など)がどのような条件のもと使用されているかを、実際に使用している製造技術部門の方に調査を行いました。調査の結果得られた制御盤への取り付け方、電力の供給方法、サイズ、熱耐性、瞬停対策を網羅できるように工夫して設計を行いました。その結果、エッジデバイスNeural Cubeは以下のような仕様になっています。
注)PLC :Programmable logic controller (プログラマブルロジックコントローラ)のことで、製造現場などで機械を自動的に制御するコントローラーのこと
・制御盤への取り付け方法⇒背面にDINレール取付金具搭載
これによりワンタッチで取り付け可能です。
・電力の供給方法⇒現場で良く使用されているDC24V電源での駆動をサポート
・サイズ⇒従来、画像処理用途で使用されているデバイスと同等
・熱耐性⇒ファンによる空冷を使用
ファンが故障してもすぐに取り換えができるようHWの配置を工夫
・瞬間停電(瞬停)対策⇒OSなどのシステムを保護するため、システムに関わるメモリ領域の保護
実際の製造現場にある設備の制御盤にて使用することを考慮し、最大45度の熱耐性を得るには非常に苦労しました。45度の環境で、AIの実行のような高負荷な処理を継続して行うと、JetsonTX2の消費電力が小さいとは言え、モジュールの耐熱温度85度を超えてしまいます。そこでファンを使用して強制的に冷やす方法をとりましたが、Neural Cubeの筐体の影響により単純にファンを設置したのでは耐熱性は得られませんでした。そのため、筐体内におけるJetsonTX2モジュールの配置や、筐体の吸気排気用の穴位置、万が一、FANが故障した場合のメンテナンスのしやすさなどいくつもの条件を変更し、複数回シミュレーションを実施し、現在の仕組みを構築しました。
また、瞬停対策にも苦労しました。製造設備は、OSのシャットダウンをせずに主電源が落とされたり、工場の電力低下による瞬停などが発生する可能性があります。システム領域へのデータの書き換え途中に上記のような状態に陥るとデバイスメモリ内のデータが破損してしまい、最悪の場合、デバイスを使用することができなくなります。デバイスが動作しなくなると製造設備が止まってしまい生産ができなくなり多くの損失につながります。
このような事態に対応する方法として、メモリ領域へのアクセスに制限を設けるというものがあります。
しかしながら、最初からこの設定にしてしまうと、そもそもAIなどのソフトウェア側の開発ができなくなります。そこでNeural Cubeでは、AIなどのソフトウェア側の開発を行うフェーズではメモリ領域の保護を外し、開発が完了して製造設備の一部として稼働するフェーズになったらメモリ領域の保護を有効にするような設定になっています。
このようにして製造現場向けのソフトウェア、ハードウェアを備えたNeural Cubeを開発することができました。
エッジデバイス「Neural Cube(ニューラルキューブ)」開発秘話のまとめ
いかがだったでしょうか?
エッジデバイス・Neural Cube(ニューラルキューブ)開発秘話をご紹介しました。
AIを現場に導入することをご検討の方はぜひ参考にしてみてください。